package com.srit.system.service.impl;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.srit.forecast.bean.ReportConfig;
import com.srit.forecast.bean.ReportPageRel;
import com.srit.forecast.dao.ReportConfigDao;
import com.srit.forecast.dao.ReportPageRelDao;
import com.srit.system.service.ReportConfigService;

@Service
@Transactional
public class ReportConfigServiceImpl implements ReportConfigService {
	@Autowired
	private ReportConfigDao reportConfigDao;
	@Autowired
	private ReportPageRelDao reportPageRelDao;

	@Override
	public void save(ReportConfig reportConfig) {
		reportConfigDao.save(reportConfig);
		int reportConfigId = reportConfigDao.getMaxId();
		for (ReportPageRel rel : reportConfig.getRelList()) {
			rel.setReportConfigId(reportConfigId);
			reportPageRelDao.save(rel);
		}
	}

	@Override
	public void update(ReportConfig reportConfig) {
		reportConfigDao.update(reportConfig);
		int reportConfigId = reportConfig.getId();
		reportPageRelDao.deletByReportConfigId(reportConfigId);
		for (ReportPageRel rel : reportConfig.getRelList()) {
			rel.setReportConfigId(reportConfigId);
			reportPageRelDao.save(rel);
		}
	}

	@Override
	public ReportConfig getById(Integer id) {
		ReportConfig reportConfig = reportConfigDao.getById(id);
		reportConfig.setRelList(reportPageRelDao.listByReportConfigId(id));
		return reportConfig;
	}
}
